C++ STL pair用法详解

您所在的位置:网站首页 c stl C++ STL pair用法详解

C++ STL pair用法详解

2023-12-22 09:09| 来源: 网络整理| 查看: 265

首页 > STL > STL关联式容器 C++ STL pair用法详解   我们知道,关联式容器存储的是“键值对”形式的数据,比如:

如上所示,每行都表示一个键值对,其中第一个元素作为键(key),第二个元素作为值(value)。

注意,基于各个关联式容器存储数据的特点,只有各个键值对中的键和值全部对应相等时,才能使用 set 和 multiset 关联式容器存储,否则就要选用 map 或者 multimap 关联式容器。

考虑到“键值对”并不是普通类型数据,C++ STL 标准库提供了 pair 类模板,其专门用来将 2 个普通元素 first 和 second(可以是 C++ 基本数据类型、结构体、类自定的类型)创建成一个新元素。通过其构成的元素格式不难看出,使用 pair 类模板来创建“键值对”形式的元素,再合适不过。 注意,pair 类模板定义在头文件中,所以在使用该类模板之前,需引入此头文件。另外值得一提的是,在 C++ 11 标准之前,pair 类模板中提供了以下 3 种构造函数: #1) 默认构造函数,即创建空的 pair 对象 pair(); #2) 直接使用 2 个元素初始化成 pair 对象 pair (const first_type& a, const second_type& b); #3) 拷贝(复制)构造函数,即借助另一个 pair 对象,创建新的 pair 对象 template pair (const pair& pr); 在 C++ 11 标准中,在引入右值引用的基础上,pair 类模板中又增添了如下 2 个构造函数: #4) 移动构造函数 template pair (pair&& pr); #5) 使用右值引用参数,创建 pair 对象 template pair (U&& a, V&& b);

除此之外,C++ 11 标准中 pair 类模板还新增加了如下一种构造函数:pair (piecewise_construct_t pwc, tuple first_args, tuple second_args);

,该构造 pair 类模板的方式很少用到,因此本节不再对其进行详细介绍,感兴趣的读者可自行查阅资料。 下面程序演示了以上几种创建 pair 对象的方法: #include #include // pair #include // string using namespace std; int main() { // 调用构造函数 1,也就是默认构造函数 pair pair1; // 调用第 2 种构造函数 pair pair2("STL教程","http://c.biancheng.net/stl/"); // 调用拷贝构造函数 pair pair3(pair2); //调用移动构造函数 pair pair4(make_pair("C++教程", "http://c.biancheng.net/cplus/")); // 调用第 5 种构造函数 pair pair5(string("Python教程"), string("http://c.biancheng.net/python/")); cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3